using System;
using System.Collections;

namespace Northwind.DataAccess
{
	
	public abstract class Product
	{
	
		public System.String ProductName
		{
			get { return this.productName; }
			set { this.productName = value; }
		}

		public System.String QuantityPerUnit
		{
			get { return this.quantityPerUnit; }
			set { this.quantityPerUnit = value; }
		}

		public System.Decimal UnitPrice
		{
			get { return this.unitPrice; }
			set { this.unitPrice = value; }
		}

		public System.Int16 UnitsInStock
		{
			get { return this.unitsInStock; }
			set { this.unitsInStock = value; }
		}

		public System.Int16 UnitsOnOrder
		{
			get { return this.unitsOnOrder; }
			set { this.unitsOnOrder = value; }
		}

		public System.Int16 ReorderLevel
		{
			get { return this.reorderLevel; }
			set { this.reorderLevel = value; }
		}

		public System.Boolean Discontinued
		{
			get { return this.discontinued; }
			set { this.discontinued = value; }
		}

		public Northwind.DataAccess.Supplier Supplier
		{
			get { return this.supplier; }
			set { this.supplier = value; }
		}

		public Northwind.DataAccess.Category Category
		{
			get { return this.category; }
			set { this.category = value; }
		}

//		protected void OnCreate(object[] args)
//		{
//		}
		
//		protected void OnMaterialize()
//		{
//		}
		
//		protected void OnValidate()
//		{
//		}
		
		protected abstract System.String productName { get; set; }

		protected abstract System.String quantityPerUnit { get; set; }

		protected abstract System.Decimal unitPrice { get; set; }

		protected abstract System.Int16 unitsInStock { get; set; }

		protected abstract System.Int16 unitsOnOrder { get; set; }

		protected abstract System.Int16 reorderLevel { get; set; }

		protected abstract System.Boolean discontinued { get; set; }

		protected abstract Northwind.DataAccess.Supplier supplier { get; set; }

		protected abstract Northwind.DataAccess.Category category { get; set; }

	}
}
